home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 11 / Cream of the Crop 11-1.iso / math / ast51src.zip / EXTERN.H < prev    next >
C/C++ Source or Header  |  1995-12-31  |  23KB  |  631 lines

  1. /*
  2. ** Astrolog (Version 5.10) File: extern.h
  3. **
  4. ** IMPORTANT NOTICE: The graphics database and chart display routines
  5. ** used in this program are Copyright (C) 1991-1995 by Walter D. Pullen
  6. ** (Astara@msn.com). Permission is granted to freely use and
  7. ** distribute these routines provided one doesn't sell, restrict, or
  8. ** profit from them in any way. Modification is allowed provided these
  9. ** notices remain with any altered or edited versions of the program.
  10. **
  11. ** The main planetary calculation routines used in this program have
  12. ** been Copyrighted and the core of this program is basically a
  13. ** conversion to C of the routines created by James Neely as listed in
  14. ** Michael Erlewine's 'Manual of Computer Programming for Astrologers',
  15. ** available from Matrix Software. The copyright gives us permission to
  16. ** use the routines for personal use but not to sell them or profit from
  17. ** them in any way.
  18. **
  19. ** The PostScript code within the core graphics routines are programmed
  20. ** and Copyright (C) 1992-1993 by Brian D. Willoughby
  21. ** (brianw@sounds.wa.com). Conditions are identical to those above.
  22. **
  23. ** The extended accurate ephemeris databases and formulas are from the
  24. ** calculation routines in the program "Placalc" and are programmed and
  25. ** Copyright (C) 1989,1991,1993 by Astrodienst AG and Alois Treindl
  26. ** (alois@azur.ch). The use of that source code is subject to
  27. ** regulations made by Astrodienst Zurich, and the code is not in the
  28. ** public domain. This copyright notice must not be changed or removed
  29. ** by any user of this program.
  30. **
  31. ** Initial programming 8/28,30, 9/10,13,16,20,23, 10/3,6,7, 11/7,10,21/1991.
  32. ** X Window graphics initially programmed 10/23-29/1991.
  33. ** PostScript graphics initially programmed 11/29-30/1992.
  34. ** Last code change made 12/27/1995.
  35. */
  36.  
  37. /*
  38. ******************************************************************************
  39. ** Function Declarations.
  40. ******************************************************************************
  41. */
  42.  
  43. #ifdef PROTO
  44. #define P(t) t
  45. #else
  46. #define P(t) ()
  47. #endif
  48.  
  49. /* From astrolog.c */
  50.  
  51. extern void InitColors P((void));
  52. extern void Action P((void));
  53. extern void InitVariables P((void));
  54. extern bool FProcessCommandLine P((char *));
  55. extern int NParseCommandLine P((char *, char **));
  56. extern int NPromptSwitches P((char *, char *[MAXSWITCHES]));
  57. extern int NProcessSwitchesRare P((int, char **, int, bool, bool, bool));
  58. extern bool FProcessSwitches P((int, char **));
  59.  
  60.  
  61. /* From data.c & data2.c */
  62.  
  63. #define MM ciCore.mon
  64. #define DD ciCore.day
  65. #define YY ciCore.yea
  66. #define TT ciCore.tim
  67. #define ZZ ciCore.zon
  68. #define SS ciCore.dst
  69. #define OO ciCore.lon
  70. #define AA ciCore.lat
  71.  
  72. #define Mon ciMain.mon
  73. #define Day ciMain.day
  74. #define Yea ciMain.yea
  75. #define Tim ciMain.tim
  76. #define Zon ciMain.zon
  77. #define Dst ciMain.dst
  78. #define Lon ciMain.lon
  79. #define Lat ciMain.lat
  80.  
  81. #define Mon2 ciTwin.mon
  82. #define Day2 ciTwin.day
  83. #define Yea2 ciTwin.yea
  84. #define Tim2 ciTwin.tim
  85. #define Zon2 ciTwin.zon
  86. #define Dst2 ciTwin.dst
  87. #define Lon2 ciTwin.lon
  88. #define Lat2 ciTwin.lat
  89.  
  90. #define ignorea(a) (rAspOrb[a] <= 0.0)
  91.  
  92. extern US NPTR us;
  93. extern IS NPTR is;
  94. extern CI ciCore, ciMain, ciTwin, ciSave;
  95. extern CP cp1, cp2;
  96. extern FILE *S;
  97. extern real MC, Asc, T, RA;
  98.  
  99. extern real planet[objMax], planetalt[objMax], house[cSign+1], ret[objMax],
  100.   spacex[oNorm+1], spacey[oNorm+1], spacez[oNorm+1], force[objMax];
  101. extern GridInfo FPTR *grid;
  102. extern byte inhouse[objMax];
  103. extern int starname[cStar+1], kObjA[objMax];
  104.  
  105. extern byte ignore[objMax], ignore2[objMax];
  106. extern real rAspAngle[cAspect+1], rAspOrb[cAspect+1], rObjOrb[oNorm+1],
  107.   rObjAdd[oNorm+1];
  108. extern CONST int ruler2[oNorm+1], exalt[oNorm+1], rules[cSign+1];
  109. extern int ruler1[oNorm+1], kMainA[9], kRainbowA[8], kElemA[4],
  110.   kAspA[cAspect+1];
  111. extern real rObjInf[oNorm+3], rHouseInf[cSign+3], rAspInf[cAspect+1],
  112.   rTransitInf[oNorm+3];
  113.  
  114. extern CONST char *szAppName, *szSignName[cSign+1], *szSignAbbrev[cSign+1],
  115.   *szSignEnglish[cSign+1], *szHouseTradition[cSign+1], *szSystem[cSystem],
  116.   *szAspectName[cAspect+1], *szAspectGlyph[cAspect+1],
  117.   *szAspectConfig[cAspConfig+1], *szElem[4], *szMode[3], *szMonth[cSign+1],
  118.   *szDay[cWeek], *szZon[cZone], *szDir[4], *szSuffix[cSign+1];
  119. extern CONST real rZon[cZone];
  120. extern char *szObjName[objMax], *szAspectAbbrev[cAspect+1];
  121. extern CONST char *szCnstlName[cCnstl+1], *szCnstlAbbrev[cCnstl+1],
  122.   *szCnstlMeaning[cCnstl+1], *szCnstlGenitive[cCnstl+1];
  123. extern CONST real rStarBright[cStar+1], rStarData[cStar*6];
  124. extern char *szMindPart[oNorm+1], *szDesc[cSign+1], *szDesire[cSign+1],
  125.   *szLifeArea[cSign+1], *szInteract[cAspectInt+1], *szTherefore[cAspectInt+1],
  126.   *szModify[3][cAspectInt];
  127.  
  128. extern CONST real rObjDist[oVes+1], rObjYear[oVes+1], rObjDiam[oVes+1],
  129.   rObjDay[oPlu+1], rObjMass[oPlu+1], rObjAxis[oPlu+1];
  130. extern CONST byte cSatellite[oPlu+1];
  131. extern CONST AI ai[cPart];
  132.  
  133. extern CONST byte rErrorCount[oPlu-oJup+1];
  134. extern CONST byte rErrorOffset[oPlu-oJup+1];
  135. extern CONST real rErrorData[72+51+42*3];
  136. extern OE rgoe[oVes-1+cUran];
  137. extern char *szMacro[48];
  138. extern CONST char *szColor[cColor];
  139.  
  140.  
  141. /* From general.c */
  142.  
  143. #define PrintAltitude(deg) PrintSz(SzAltitude(deg))
  144. #define ErrorValR(sz, r) ErrorValN(sz, (int)r)
  145.  
  146. extern void SwapR P((real *, real *));
  147. extern int CchSz P((CONST char *));
  148. extern int NCompareSz P((CONST char *, CONST char *));
  149. extern void ClearB P((lpbyte, int));
  150. extern void CopyRgb P((byte *, byte *, int));
  151. extern real RSgn P((real));
  152. extern real Angle P((real, real));
  153. extern real Mod P((real));
  154. extern real ModRad P((real));
  155. extern long Dvd P((long, long));
  156. extern int Mod12 P((int));
  157. extern real DecToDeg P((real));
  158. extern real DegToDec P((real));
  159. extern real MinDistance P((real, real));
  160. extern real MinDifference P((real, real));
  161. extern real Midpoint P((real, real));
  162. extern char Dignify P((int, int));
  163. extern int DayInMonth P((int, int));
  164. extern int DaysInMonth P((int, int));
  165. extern int DayOfWeek P((int, int, int));
  166. extern int AddDay P((int, int, int, int));
  167. extern real GetOrb P((int, int, int));
  168. extern void Terminate P((int));
  169. extern void PrintSz P((CONST char *));
  170. extern void PrintCh P((char));
  171. extern void PrintSzScreen P((char *));
  172. extern void PrintNotice P((char *));
  173. extern void PrintWarning P((char *));
  174. extern void PrintError P((char *));
  175. extern void ErrorArgc P((char *));
  176. extern void ErrorValN P((char *, int));
  177. extern void ErrorArgv P((char *));
  178. extern void ErrorSwitch P((char *));
  179. extern void ErrorEphem P((char *, long));
  180. extern void PrintTab P((char, int));
  181. extern void AnsiColor P((int));
  182. extern void PrintZodiac P((real));
  183. extern char *SzZodiac P((real));
  184. extern char *SzAltitude P((real));
  185. extern char *SzDegree P((real));
  186. extern char *SzDate P((int, int, int, int));
  187. extern char *SzTime P((int, int));
  188. extern char *SzTim P((real));
  189. extern char *SzZone P((real));
  190. extern char *SzLocation P((real, real));
  191. extern void GetTimeNow P((int *, int *, int *, real *, real));
  192. extern int NFromAltN P((int));
  193. extern char *ProcessProgname P((char *));
  194. extern char *SzPersist P((char *));
  195. extern lpbyte PAllocate P((long, bool, char *));
  196.  
  197.  
  198. /* From io.c */
  199.  
  200. extern FILE *FileOpen P((char *, int));
  201. extern bool FProcessSwitchFile P((char *, FILE *));
  202. extern bool FOutputData P((void));
  203. extern int NParseSz P((char *, int));
  204. extern real RParseSz P((char *, int));
  205. extern void InputString P((char *, char *));
  206. extern int NInputRange P((char *, int, int, int));
  207. extern real RInputRange P((char *, real, real, int));
  208. extern bool FInputData P((char *));
  209.  
  210.  
  211. /* From calc.c */
  212.  
  213. #define RBiorhythm(day, rate) (RSin(((day)/(rate))*rPi2)*100.0)
  214.  
  215. extern int HousePlaceIn P((real));
  216. extern void ComputeInHouses P((void));
  217. extern void HouseAlcabitius P((void));
  218. extern void HouseEqualMidheaven P((void));
  219. extern void HousePorphyryNeo P((void));
  220. extern void HouseWhole P((void));
  221. extern void HouseNull P((void));
  222. extern void ComputeHouses P((int));
  223. extern void ComputeStars P((real));
  224. extern real Decan P((real));
  225. extern void SphToRec P((real, real, real, real *, real *, real *));
  226. extern void ComputePlacalc P((real));
  227. extern real CastChart P((bool));
  228. extern bool FEnsureGrid P((void));
  229. extern bool FAcceptAspect P((int, int, int));
  230. extern void GetAspect P((real *, real *, real *, real *, int, int));
  231. extern void GetParallel P((real *, real *, real *, real *, int, int));
  232. extern bool FCreateGrid P((bool));
  233. extern bool FCreateGridRelation P((bool));
  234. extern void CreateElemTable P((ET *));
  235.  
  236.  
  237. /* From matrix.c */
  238.  
  239. #define EclToEqu(Z, L) CoorXform(Z, L, RFromD(rAxis))
  240. #define EquToEcl(Z, L) CoorXform(Z, L, RFromD(-rAxis))
  241. #define EquToLocal(Z, L, T) CoorXform(Z, L, T)
  242. #define JulianDayFromTime(t) ((t)*36525.0+2415020.0)
  243. #define IoeFromObj(obj) \
  244.   (obj < oMoo ? 0 : (obj <= cPlanet ? obj-2 : obj-uranLo+cPlanet-1))
  245. #define Tropical(deg) (deg - is.rSid + us.rZodiacOffset)
  246.  
  247. extern real MC, Asc, RA, OB;
  248.  
  249. extern long MdyToJulian P((int, int, int));
  250. extern real MdytszToJulian P((int, int, int, real, real, real));
  251. extern void JulianToMdy P((real, int *, int *, int *));
  252. extern real ProcessInput P((bool));
  253. extern void PolToRec P((real, real, real *, real *));
  254. extern void RecToPol P((real, real, real *, real *));
  255. extern real RecToSph P((real, real, real));
  256. extern void CoorXform P((real *, real *, real));
  257. extern void ComputeVariables P((real *));
  258. extern real CuspMidheaven P((void));
  259. extern real CuspAscendant P((void));
  260. extern real CuspEastPoint P((void));
  261. extern real CuspPlacidus P((real, real, bool));
  262. extern void HousePlacidus P((void));
  263. extern void HouseKoch P((void));
  264. extern void HouseEqual P((void));
  265. extern void HouseCampanus P((void));
  266. extern void HouseMeridian P((void));
  267. extern void HouseRegiomontanus P((void));
  268. extern void HousePorphyry P((void));
  269. extern void HouseMorinus P((void));
  270. extern real CuspTopocentric P((real));
  271. extern void HouseTopocentric P((void));
  272. extern real ReadThree P((real, real, real));
  273. extern void RecToSph2 P((real, real, real, real *, real *, real *));
  274. extern void ErrorCorrect P((int, real *, real *, real *));
  275. extern void ProcessPlanet P((int, real));
  276. extern void ComputePlanets P((void));
  277. extern void ComputeLunar P((real *, real *, real *, real *));
  278.  
  279.  
  280. #ifdef PLACALC
  281. /* From placalc.c & placalc2.c */
  282.  
  283. extern bool FPlacalcPlanet
  284.   P((int, double, int, real *, real *, real *, real *));
  285. extern double julday P((int, int, int, double, int));
  286. extern void revjul P((double, int, int *, int *, int *, double *));
  287. #endif
  288.  
  289.  
  290. /* From charts0.c */
  291.  
  292. extern void PrintW P((char *, int));
  293. extern void DisplayCredits P((void));
  294. extern void PrintS P((char *));
  295. extern void DisplaySwitches P((void));
  296. extern void DisplaySwitchesRare P((void));
  297. extern void PrintObjects P((void));
  298. extern void PrintAspects P((void));
  299. extern void PrintSigns P((void));
  300. #ifdef CONSTEL
  301. extern char *GetSzGenitive P((char *, char *));
  302. extern void GetSzConstel P((char *, int));
  303. extern void PrintConstellations P((void));
  304. #endif
  305. extern void PrintOrbit P((void));
  306. extern int NCompareSzPart P((int, int));
  307. extern void DisplayArabic P((void));
  308. #ifdef GRAPH
  309. extern void DisplayKeysX P((void));
  310. extern void DisplaySwitchesX P((void));
  311. #ifdef WIN
  312. extern void DisplaySwitchesW P((void));
  313. #endif
  314. #endif /* GRAPH */
  315. extern bool FPrintTables P((void));
  316.  
  317.  
  318. /* From charts1.c */
  319.  
  320. extern void ChartListing P((void));
  321. extern void ChartGrid P((void));
  322. extern void PrintGrand P((char, int, int, int, int));
  323. extern void DisplayGrands P((void));
  324. extern void PrintHouse P((int, int));
  325. extern void PrintWheelCenter P((int));
  326. extern void PrintWheelSlot P((int));
  327. extern void ChartWheel P((void));
  328. extern void ChartAspect P((void));
  329. extern void ChartMidpoint P((void));
  330. extern void ChartHorizon P((void));
  331. extern void ChartOrbit P((void));
  332. extern void ChartAstroGraph P((void));
  333. extern void PrintChart P((bool));
  334.  
  335.  
  336. /* From charts2.c */
  337.  
  338. extern void ChartGridRelation P((void));
  339. extern void ChartAspectRelation P((void));
  340. extern void ChartMidpointRelation P((void));
  341. extern void CastRelation P((bool));
  342. extern void PrintInDay P((int, int, int));
  343. extern void PrintAspect P((int, int, int, int, int, int, int, char));
  344. extern void ChartInDayInfluence P((void));
  345. extern void ChartTransitInfluence P((bool));
  346. extern void EclToHorizon P((real *, real *, real, real, real, real, real));
  347. extern void ChartCalendarMonth P((void));
  348. extern void ChartCalendarYear P((void));
  349. extern void DisplayRelation P((void));
  350.  
  351.  
  352. /* From charts3.c */
  353.  
  354. extern void ChartInDaySearch P((bool));
  355. extern void ChartTransitSearch P((bool));
  356. extern void ChartInDayHorizon P((void));
  357. extern void ChartEphemeris P((void));
  358.  
  359.  
  360. /* From intrpret.c */
  361.  
  362. #ifdef INTERPRET
  363. extern void FieldWord P((char *));
  364. extern void InterpretGeneral P((void));
  365. extern void InterpretAspectGeneral P((void));
  366. extern void InterpretLocation P((void));
  367. extern void InterpretAspect P((int, int));
  368. extern void InterpretGrid P((void));
  369. extern void InterpretMidpoint P((int, int));
  370. extern void InterpretInDay P((int, int, int));
  371. extern void InterpretTransit P((int, int, int));
  372. extern void InterpretSynastry P((void));
  373. extern void InterpretAspectRelation P((int, int));
  374. extern void InterpretGridRelation P((void));
  375. extern void InterpretMidpointRelation P((int, int));
  376. #endif
  377. extern void SortRank P((real *, int *, int));
  378. extern void ChartInfluence P((void));
  379.  
  380.  
  381. #ifdef GRAPH
  382. /* From xdata.c */
  383.  
  384. extern GS NPTR gs;
  385. extern GI NPTR gi;
  386.  
  387. #ifdef X11
  388. extern XSizeHints hint;
  389. extern char xkey[];
  390. extern char *szColorX[cColor];
  391. extern KV rgbind[cColor];
  392. extern KV fg, bg;
  393. #endif
  394. #ifdef WIN
  395. extern int ikPalette[cColor];
  396. #endif
  397.  
  398. extern CONST KV rgb[cColor], rgbbmp[cColor];
  399. extern KI kMainB[9], kRainbowB[8], kElemB[4], kAspB[cAspect+1], kObjB[objMax];
  400.  
  401. extern char szObjectFont[oNorm+1], *szDrawSign[cSign+3],
  402.   *szDrawObject[oNorm+8];
  403. extern CONST char szAspectFont[cAspect+1], *szDrawHouse[cSign+1],
  404.   *szDrawAspect[cAspect+1], *szDrawCh[128-32+1], *szWorldData[62*3],
  405.   *szDrawConstel[cCnstl+1];
  406.  
  407.  
  408. /* From xgeneral.c */
  409.  
  410. #define BBmGet(B, X, Y) ((B)[(long)(Y)*(long)(gi.cbBmpRow) + ((X) >> 1)])
  411. #define FBmGet(B, X, Y) (BBmGet(B, X, Y) >> (((X)&1^1) << 2) & 15)
  412. #define BmSet(B, X, Y, O) BBmGet(B, X, Y) = BBmGet(B, X, Y) & \
  413.   15 << (((X)&1) << 2) | (O) << (((X)&1^1) << 2)
  414.  
  415. #define PutByte(A) putc((byte) (A), file)
  416. #define PutWord(A) PutByte(BLo(A)); PutByte(BHi(A))
  417. #define PutLong(A) PutWord(WLo(A)); PutWord(WHi(A))
  418.  
  419. #define DrawEdge(X1, Y1, X2, Y2) DrawBox(X1, Y1, X2, Y2, 1, 1)
  420. #define DrawEdgeAll() DrawEdge(0, 0, gs.xWin-1, gs.yWin-1)
  421. #define DrawLine(X1, Y1, X2, Y2) DrawDash(X1, Y1, X2, Y2, 0)
  422. #define DrawCircle(X, Y, RX, RY) \
  423.   DrawEllipse((X)-(RX), (Y)-(RY), (X)+(RX), (Y)+(RY))
  424.  
  425. extern void DrawColor P((KI));
  426. extern void DrawPoint P((int, int));
  427. extern void DrawSpot P((int, int));
  428. extern void DrawBlock P((int, int, int, int));
  429. extern void DrawBox P((int, int, int, int, int, int));
  430. extern void DrawClearScreen P((void));
  431. extern void DrawDash P((int, int, int, int, int));
  432. extern void DrawWrap P((int, int, int, int, int, int));
  433. extern void ClipLesser P((int *, int *, int *, int *, int));
  434. extern void ClipGreater P((int *, int *, int *, int *, int));
  435. extern void DrawClip P((int, int, int, int, int, int, int, int, int));
  436. extern void DrawEllipse P((int, int, int, int));
  437. extern void DrawSz P((CONST char *, int, int, int));
  438. extern void DrawSign P((int, int, int));
  439. extern void DrawHouse P((int, int, int));
  440. extern void DrawObject P((int, int, int));
  441. extern void DrawAspect P((int, int, int));
  442. extern int NFromPch P((CONST char **));
  443. extern void DrawTurtle P((CONST char *, int, int));
  444.  
  445.  
  446. /* From xdevice.c */
  447.  
  448. #ifdef META
  449. /* Macros to output the various metafile commands used. */
  450.  
  451. #define MetaRecord(S, R) MetaLong((long)(S)); MetaWord(R)
  452. #define MetaSelectObject(O) MetaRecord(4, 0x12D); MetaWord(O)
  453. #define MetaDeleteObject(O) MetaRecord(4, 0x1F0); MetaWord(O)
  454. #define MetaSaveDc() MetaRecord(3, 0x01E)
  455. #define MetaRestoreDc() MetaRecord(4, 0x127); MetaWord((word)-1)
  456. #define MetaWindowOrg(X, Y) MetaRecord(5, 0x20B); MetaWord(Y); MetaWord(X)
  457. #define MetaWindowExt(X, Y) MetaRecord(5, 0x20C); MetaWord(Y); MetaWord(X)
  458. #define MetaCreatePen(S, W, C) MetaRecord(8, 0x2FA); MetaWord(S); \
  459.   MetaWord(W); MetaWord(W); MetaLong(C)
  460. #define MetaCreateBrush(S, C) MetaRecord(7, 0x2FC); \
  461.   MetaWord(S); MetaLong(C); MetaWord(0 /* Not used */);
  462. #define MetaCreateFont(S, X, Y, C) MetaRecord(12+(S), 0x2FB); MetaWord(Y); \
  463.   MetaWord(X); MetaWord(0 /* Angle */); MetaWord(0 /* Not used */); \
  464.   MetaWord(400 /* Normal Weight */); MetaWord(0 /* Italic, Underline */); \
  465.   MetaWord(WFromBB(0 /* Strikeout */, C)); \
  466.   MetaWord(WFromBB(4 /* TrueType */, 0 /* Clip */))
  467. #define MetaBkMode(M) MetaRecord(4, 0x102); MetaWord(M)
  468. #define MetaTextAlign(A) MetaRecord(4, 0x12E); MetaWord(A)
  469. #define MetaTextColor(C) MetaRecord(5, 0x209); MetaLong(C);
  470. #define MetaTextOut(X, Y, S) MetaRecord(7+((S)+1)/2, 0xA32); \
  471.   MetaWord(Y); MetaWord(X); MetaWord(S); MetaWord(0 /* ETO */)
  472. #define MetaRectangle(X1, Y1, X2, Y2) MetaRecord(7, 0x41B); \
  473.   MetaWord(Y2); MetaWord(X2); MetaWord(Y1); MetaWord(X1)
  474. #define MetaEllipse(X1, Y1, X2, Y2) MetaRecord(7, 0x418); \
  475.   MetaWord(Y2); MetaWord(X2); MetaWord(Y1); MetaWord(X1)
  476. #define MetaEscape(S) MetaRecord((S), 0x626); \
  477.   MetaWord(15 /* MFCOMMENT */); MetaWord(((S)-5)*2 /* Bytes in comment */);
  478. #endif /* META */
  479.  
  480. extern void WriteXBitmap P((FILE *, char *, char));
  481. extern void WriteAscii P((FILE *));
  482. extern void WriteBmp P((FILE *));
  483. extern void BeginFileX P((void));
  484. extern void EndFileX P((void));
  485. extern void PsStrokeForce P((void));
  486. extern void PsStroke P((int));
  487. extern void PsLineCap P((bool));
  488. extern void PsDash P((int));
  489. extern void PsLineWidth P((int));
  490. extern void PsFont P((int));
  491. extern void PsBegin P((void));
  492. extern void PsEnd P((void));
  493. extern void MetaWord P((word));
  494. extern void MetaLong P((long));
  495. extern void MetaSelect P((void));
  496. extern void MetaInit P((void));
  497. extern void WriteMeta P((FILE *));
  498. extern int MouseInit P((int, int));
  499. extern void MouseShow P((bool));
  500. extern bool MouseStatus P((int *, int *, int *));
  501.  
  502.  
  503. /* From xcharts0.c */
  504.  
  505. extern int DrawPrint P((char *, int, int));
  506. extern void DrawInfo P((void));
  507. extern bool FReadWorldData P((char FPTR **, char FPTR **, char FPTR **));
  508. extern bool FGlobeCalc P((real, real, int *, int *, int, int, int, int, int));
  509. extern void DrawLeyLine P((real, real, real, real));
  510. extern void DrawLeyLines P((int));
  511. extern void DrawMap P((bool, bool, int));
  512. extern void DrawChartX P((void));
  513.  
  514.  
  515. /* From xcharts1.c */
  516.  
  517. extern void XChartWheel P((void));
  518. extern void XChartAstroGraph P((void));
  519. extern void XChartGrid P((void));
  520. extern void XChartHorizon P((void));
  521. extern void XChartHorizonSky P((void));
  522. extern void XChartOrbit P((void));
  523. extern void DrawArrow P((int, int, int, int));
  524. extern void XChartDispositor P((void));
  525. extern void XChartCalendar P((void));
  526. extern void XChartEphemeris P((void));
  527.  
  528.  
  529. /* From xcharts2.c */
  530.  
  531. extern bool FProper P((int));
  532. extern void FillSymbolRing P((real *));
  533. extern void FillSymbolLine P((real *));
  534. extern real HousePlaceInX P((real));
  535. extern void XChartWheelRelation P((void));
  536. extern void XChartGridRelation P((void));
  537. extern void XChartBiorhythm P((void));
  538.  
  539.  
  540. /* From xscreen.c */
  541.  
  542. extern void InitColorsX P((void));
  543. #ifdef ISG
  544. extern void BeginX P((void));
  545. extern void AddTime P((int, int));
  546. extern void Animate P((int, int));
  547. extern void CommandLineX P((void));
  548. extern void SquareX P((int *, int *, int));
  549. extern void InteractX P((void));
  550. extern void EndX P((void));
  551. #endif
  552. extern int NProcessSwitchesX P((int, char **, int, bool, bool, bool));
  553. extern int NProcessSwitchesRareX P((int, char **, int));
  554. extern bool FActionX P((void));
  555. #endif /* GRAPH */
  556.  
  557.  
  558. #ifdef WIN
  559. /* From wdriver.c & wdialog.c */
  560.  
  561. extern WI NPTR wi;
  562. extern OPENFILENAME ofn;
  563. extern PRINTDLG prd;
  564. extern char szFileName[cchSzMaxFile], szFileTitle[cchSzMaxFile];
  565.  
  566. #define TextClearScreen() PatBlt(wi.hdc, 0, 0, wi.xClient, wi.yClient, \
  567.   us.fAnsi || !gs.fInverse ? BLACKNESS : WHITENESS);
  568. #define CheckMenu(cmd, f) \
  569.   CheckMenuItem(wi.hmenu, (_int)cmd, f ? MF_CHECKED : MF_UNCHECKED);
  570. #define WiCheckMenu(cmd, f) CheckMenu(cmd, f); wi.fMenu = fTrue
  571. #define WiDoDialog(pfn, dlg) \
  572.   dlgproc = (DLGPROC)MakeProcInstance(pfn, wi.hinst); \
  573.   DialogBox(wi.hinst, MAKEINTRESOURCE(dlg), wi.hwnd, dlgproc); \
  574.   FreeProcInstance((FARPROC)dlgproc)
  575.  
  576. #define SetCheck(id, f) CheckDlgButton(hdlg, id, f)
  577. #define SetRadio(id, idLo, idHi) CheckRadioButton(hdlg, idLo, idHi, id)
  578. #define SetEdit(id, sz) SetDlgItemText(hdlg, id, (LPCSTR)sz)
  579. #define SetEditN(id, n) SetDlgItemInt(hdlg, id, n, fTrue)
  580. #define SetCombo(id, sz) \
  581.   SendDlgItemMessage(hdlg, id, CB_ADDSTRING, 0, (LPARAM)(LPCSTR)sz)
  582. #define ClearCombo(id) SendDlgItemMessage(hdlg, id, CB_RESETCONTENT, 0, 0);
  583. #define GetCheck(id) IsDlgButtonChecked(hdlg, id)
  584. #define GetEdit(id, sz) GetDlgItemText(hdlg, id, sz, cchSzDef)
  585. #define GetEditN(id) GetDlgItemInt(hdlg, id, NULL, fTrue)
  586. #define EnsureN(n, f, sz) if (!(f)) { ErrorEnsure(n, sz); return fTrue; }
  587. #define EnsureR(r, f, sz) EnsureN((int)r, f, sz)
  588.  
  589. extern LONG API WndProc P((HWND, WORD, WORD, LONG));
  590. extern int NProcessSwitchesW P((int, char **, int, bool, bool, bool));
  591. extern void ResizeWindowToChart P((void));
  592. extern WORD WCmdFromRc P((int));
  593. extern void SetRel P((int));
  594. extern void ProcessState P((void));
  595. extern int NWmCommand P((WORD));
  596. extern void API RedoMenu P((void));
  597. extern bool API FRedraw P((void));
  598.  
  599. extern void SetEditSz(HWND, int, char *);
  600. extern void SetEditR(HWND, int, real, int);
  601. extern void SetEditMDYT(HWND, int, int, int, int, int, int, int, real);
  602. extern void SetEditSZOA(HWND, int, int, int, int, real, real, real, real);
  603. extern void SetEditColor(HWND, int, KI);
  604. extern real GetEditR(HWND, int);
  605. extern void ErrorEnsure(int, char *);
  606. extern bool FOutputSettings P((void));
  607. extern bool API DlgOpenChart P((void));
  608. extern bool API DlgSaveChart P((void));
  609. extern bool API DlgPrint P((void));
  610. extern bool API DlgAbortProc P((HDC, int));
  611. extern bool API DlgAbort P((HWND, _int, WORD, LONG));
  612. extern bool API DlgCommand P((HWND, _int, WORD, LONG));
  613. extern bool API DlgColor P((HWND, _int, WORD, LONG));
  614. extern bool API DlgInfo P((HWND, _int, WORD, LONG));
  615. extern bool API DlgDefault P((HWND, _int, WORD, LONG));
  616. extern bool API DlgAspect P((HWND, _int, WORD, LONG));
  617. extern bool API DlgObject P((HWND, _int, WORD, LONG));
  618. extern bool API DlgObject2 P((HWND, _int, WORD, LONG));
  619. extern bool API DlgRestrict P((HWND, _int, WORD, LONG));
  620. extern bool API DlgStar P((HWND, _int, WORD, LONG));
  621. extern bool API DlgSetting P((HWND, _int, WORD, LONG));
  622. extern bool API DlgObscure P((HWND, _int, WORD, LONG));
  623. extern bool API DlgTransit P((HWND, _int, WORD, LONG));
  624. extern bool API DlgProgress P((HWND, _int, WORD, LONG));
  625. extern bool API DlgChart P((HWND, _int, WORD, LONG));
  626. extern bool API DlgGraphics P((HWND, _int, WORD, LONG));
  627. extern bool API DlgAbout P((HWND, _int, WORD, LONG));
  628. #endif /* WIN */
  629.  
  630. /* extern.h */
  631.